<?php
/**
 * SpecialPage 
 */
class TestMourad extends SpecialPage {
        
    /**
     * constructeur 
     */
    function __construct() {
        // block est un droit necessaire pour utiliser cette page
        parent::__construct('TestMourad', 'block');
        
        // verifier si l'utilisateur courant a le droit block
        // $this->checkPermissions();
    }
    
    /**
     * @param type $test 
     */
    public function execute($test){
        
        // ---------- recuperation des paramettres postés($_POST) ou envoyés via $_GET --------------
        // recuperation de l'objet requete
        $request = $this->getRequest();
        
        /*
         *  recupere les données apartir $_GET, $_POST et $_COOKIE, dans l'ordre
         * @premier paramettre, le nom de la variable exemple ?nom=valeur
         * @deuxieme paramettre la valeur de la variable, 
         */
        $nom = $request->getText('nom', 'aucun nom posté');
        // boolean $request->wasPosted() permet de savoir si la requete est de type $_POST
        
        //----------- Interogation de la base de donnees -----------
        // recuperation d'une instance de type Database, la connecion se fait sur DB_SLAVE
        // il est possible d'utilisé la DB_MASTER, dans notre cas master est slave equivalent
        $mDb = wfGetDB( DB_SLAVE );
        
        // liste des tables a interroger
        $tables = array('user');
        
        // liste des champs a recuperer
        $fields = array('user_name');
        
        // pas de jointures, pas de where, pas de order no de group by
        $conds = $options = $join_conds = array(); 
        
        // info sur la methode de la class utilisée
        $fname = __METHOD__ . ' (TestMourad)';
        
        // execution de la reque "SELECT user_name FROM user"
        $res = $mDb->select( $tables, $fields, $conds, $fname, $options, $join_conds );
        
        //----------- initialisation de la vue -----------      
        $tpl = new TemplateMourad($this->getUser(), $res);
        
        // envoie du nom vers la vue
        $tpl->setNom($nom);
        
        // recuperation de l'output
        $out = $this->getOutput();
        
        // ajout de la template dans le output
        $out->addTemplate($tpl);
    }
}
?>
